package br.com.app.dao;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.NoResultException;

import br.com.app.modelo.Convidado;

public class ConvidadoDAO extends DAOGenerico<Convidado, Long> {
		
	@SuppressWarnings("unchecked")
	public List<Convidado> buscar(String nome, int registro , int quantidade){
		EntityManager entityManager = EMF.get().createEntityManager();
		try{
			StringBuilder stringBuilder = new StringBuilder();
			stringBuilder.append(" select c from Convidado c ");
			if(nome!=null&&!nome.equals("")){
				stringBuilder.append(" where c.nome like '" + nome +"'" );
			}
			List<Convidado> Convidados = null;
			Convidados = entityManager.createQuery(stringBuilder.toString()).
			setFirstResult(registro).
			setMaxResults(quantidade).
			getResultList();
			Convidados.size();
			return Convidados;
		}catch( NoResultException e ){
            return null;
        } 
	}
	
	public int buscar(String nome){
		StringBuilder stringBuilder = new StringBuilder();
		stringBuilder.append(" select count(c) from Convidado c ");
		if(nome!=null&&!nome.equals("")){
			stringBuilder.append(" where c.nome like '" + nome +"'" );
		}
		Number registros = null;
		EntityManager entityManager = EMF.get().createEntityManager();
		try{
			registros = (Number) entityManager.createQuery(stringBuilder.toString()).
									getSingleResult();
            return registros == null ? 0 : registros.intValue();
		}catch( NoResultException e ){
            return 0;
        }  
	}

}
